#include <iostream>
#include <string>
#include "zmq.hpp"

int main()
{
    // 初始化 ZeroMQ 上下文
    zmq::context_t context(1);

    // 创建订阅者 socket
    zmq::socket_t subscriber(context, ZMQ_SUB);
    subscriber.connect("tcp://localhost:5555");

    // 订阅所有消息，空字符串表示订阅所有主题
    subscriber.setsockopt(ZMQ_SUBSCRIBE, "", 0);

    while (true)
    {
        zmq::message_t message;

        // 接收消息
        subscriber.recv(message, zmq::recv_flags::none);

        // 转换并显示消息内容
        std::string msg(static_cast<char *>(message.data()), message.size());
        std::cout << "Received: " << msg << std::endl;
    }

    return 0;
}
